﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GrayParrot.Core.Data
{
    public abstract class FacadeBase<T> : IFacadeBase, IDisposable where T : class, new()
    {
        public FacadeBase()
        {

        }

        public static T Create()
        {
            T retValue = new T();

            ((IFacadeBase)retValue).Initialize();

            return retValue;
        }

        public abstract void Initialize();

        public abstract void Dispose();
    }
}
